﻿/*
 * Copyright (C) 2011, EADS France
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * Author: Laurent WOUTERS
 */

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Hime.Redist.Parsers;

namespace xowl.gmi.compiler.ast
{
    class MinimalASTPlaceholder : MinimalAST
    {
        public MinimalASTPlaceholder(string symbol, string route) : base(symbol, route) { }
        public MinimalASTPlaceholder(SyntaxTreeNode ast) : base(ast) { }

        protected override string WriteOWLInner(StreamWriter writer, string root, out string decorator)
        {
            string id = WriteOWLHead(writer, out decorator);
            writer.WriteLine("\t\t\tMeta(ObjectPropertyAssertion(view:" + route + " " + root + " " + id + "))");
            string token = "?" + rand.Next().ToString("X");
            writer.WriteLine("\t\t\tClassAssertion(ast:" + symbol + "Token " + token + ")");
            writer.WriteLine("\t\t\tObjectPropertyAssertion(ast:symbol " + id + " " + token + ")");
            writer.WriteLine("\t\t\tMeta(ObjectPropertyAssertion(meta:token " + id + " " + token + "))");
            return id;
        }
    }
}
